package com.forezp.util;

import java.io.*;
import java.net.URL;
import java.net.URLConnection;


/**
 * 限流测试
 */
public class LimitTest {
    public static void test(String src) {
        URL url;
        URLConnection conn;
        String temp;
        try {
            url = new URL(src);
            //  通过conn可以在发送请求前设置诸如UA等参数
            conn = url.openConnection();
            //  PringWriter 第一个参数设置打印的地方，设置为System.out 则在控制台打印
            //  如果是文件，则写入文件，并且控制台不打印
            //  自动关闭括号内声明的资源，类似Python中的with
            try (
                    BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream()));
                    // PrintWriter pw = new PrintWriter(new FileWriter(output), true)
            ) {
                //  readLine 自动去除换行符并且会解码，read则不会
                while ((temp = reader.readLine()) != null) {
                    System.out.println(temp);
                }
            }
        } catch (IOException e) {
            System.out.println(e.getMessage());
        }
    }

    public static void main(String[] args) {
        String url = "http://localhost:8081/url";
        for (int i = 0; i < 10; i++) {
            test(url);
        }
        // 测试一秒后桶中是否多出指定空闲位置
        try {
            Thread.sleep(1000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        for (int i = 0; i < 10; i++) {
            test(url);
        }
    }
}
